home *** CD-ROM | disk | FTP | other *** search
- package
- {
- import flash.display.DisplayObject;
- import flash.display.DisplayObjectContainer;
- import flash.events.EventDispatcher;
- import flash.events.MouseEvent;
-
- public class ComponentScroller extends EventDispatcher
- {
-
-
- protected var _docParent:DisplayObjectContainer = null;
-
- protected var _doScrollUp:DisplayObject = null;
-
- protected var _doScrollDown:DisplayObject = null;
-
- public var BackgroundItems:int = 1;
-
- protected var _aSlots:Array;
-
- protected var _iScrollPos:int = 0;
-
- protected var _aItems:Array;
-
- public function ComponentScroller()
- {
- _aSlots = new Array();
- _aItems = new Array();
- _iScrollPos = 0;
- _doScrollDown = null;
- _doScrollUp = null;
- _docParent = null;
- BackgroundItems = 1;
- super();
- }
-
- public function setItems(param1:Array, param2:int = 0) : void
- {
- _aItems = param1;
- _iScrollPos = param2;
- }
-
- public function getItemAtSlot(param1:int) : DisplayObject
- {
- var _loc2_:DisplayObjectContainer = null;
- _loc2_ = _aSlots[param1] as DisplayObjectContainer;
- if(_loc2_.numChildren > BackgroundItems)
- {
- return _loc2_.getChildAt(BackgroundItems);
- }
- return null;
- }
-
- protected function onScroll(param1:MouseEvent) : void
- {
- if(param1.delta > 0)
- {
- onScrollUp(param1);
- }
- else if(param1.delta < 0)
- {
- onScrollDown(param1);
- }
- }
-
- public function update() : void
- {
- var _loc1_:DisplayObjectContainer = null;
- var _loc2_:int = 0;
- var _loc3_:int = 0;
- var _loc4_:DisplayObject = null;
- var _loc5_:DisplayObjectContainer = null;
- for each(_loc1_ in _aSlots)
- {
- while(_loc1_.numChildren > BackgroundItems)
- {
- _loc1_.removeChildAt(BackgroundItems);
- }
- }
- _loc2_ = 0;
- while(_loc2_ < _aSlots.length)
- {
- _loc3_ = _iScrollPos + _loc2_;
- if(_loc3_ < _aItems.length)
- {
- _loc4_ = _aItems[_loc3_] as DisplayObject;
- (_loc5_ = _aSlots[_loc2_] as DisplayObjectContainer).addChild(_loc4_);
- _loc4_.x = -_loc4_.width / 2;
- _loc4_.y = -_loc4_.height / 2;
- }
- _loc2_++;
- }
- _doScrollUp.visible = _iScrollPos > 0;
- _doScrollDown.visible = _iScrollPos < _aItems.length - _aSlots.length;
- dispatchEvent(new ComponentScrollerEvent(ComponentScrollerEvent.COMPONENT_SCROLLER_UPDATED));
- }
-
- protected function onScrollUp(param1:MouseEvent) : void
- {
- if(_iScrollPos > 0)
- {
- --_iScrollPos;
- update();
- }
- }
-
- protected function onScrollDown(param1:MouseEvent) : void
- {
- if(_iScrollPos < _aItems.length - _aSlots.length)
- {
- ++_iScrollPos;
- update();
- }
- }
-
- public function get ScrollPos() : int
- {
- return _iScrollPos;
- }
-
- public function setScrollButtons(param1:DisplayObject, param2:DisplayObject, param3:DisplayObjectContainer) : void
- {
- if(_doScrollUp != null)
- {
- _doScrollUp.removeEventListener(MouseEvent.CLICK,onScrollUp);
- }
- _doScrollUp = param1;
- if(_doScrollDown != null)
- {
- _doScrollDown.removeEventListener(MouseEvent.CLICK,onScrollDown);
- }
- _doScrollDown = param2;
- if(_docParent != null)
- {
- _docParent.removeEventListener(MouseEvent.MOUSE_WHEEL,onScroll);
- }
- _docParent = param3;
- _doScrollUp.addEventListener(MouseEvent.CLICK,onScrollUp,false,0,true);
- _doScrollDown.addEventListener(MouseEvent.CLICK,onScrollDown,false,0,true);
- _docParent.addEventListener(MouseEvent.MOUSE_WHEEL,onScroll,false,0,true);
- }
-
- public function addSlot(param1:DisplayObjectContainer) : void
- {
- _aSlots.push(param1);
- }
- }
- }
-